package DailyPractice;

import java.util.Scanner;

public class NewCoderDay18 {
    //    描述
//    小乐乐最近在课上学习了如何求两个正整数的最大公约数与最小公倍数，但是他竟然不会求两个正整数的最大公约数与最小公倍数之和，请你帮助他解决这个问题。
//    输入描述：
//    每组输入包含两个正整数n和m。(1 ≤ n ≤ 109，1 ≤ m ≤ 109)
//    输出描述：
//    对于每组输入，输出一个正整数，为n和m的最大公约数与最小公倍数之和。
//    示例1
//    输入：
//            10 20
//    输出：
//            30
//            示例2
//    输入：
//            15 20
//    输出：
//            65
//最大公约数
    public static long gcb(long a, long b) {
        if (b == 0) return a;
        return gcb(b, a % b);
    }

    public static void printSum() {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            long a = in.nextLong();
            long b = in.nextLong();
            long max = gcb(a, b);
            //最小公倍数
            long min = a * b / gcb(a, b);
            System.out.println(max + min);
        }

    }
    public static void main(String[] args) {
        printSum();
    }
}
